package com.sumainfor.common.entity;

import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * @Author PuaChen
 * @Create 2018-12-28 16:28
 */
@Data
public class SysUserVo implements Serializable {

    /**
     * 用户编号
     */
    private Integer userId;
    /**
     * 归属公司编号
     */
    private Integer areaId;
    /**
     * 归属部门
     */
    private Integer deptId;


    /**
     * 部门名称
     */
    private String deptName;

    /**
     * 登录名
     */
    private String loginName;
    /**
     * 工号
     */
    private String no;
    /**
     * 姓名
     */
    private String name;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 电话
     */
    private String phone;
    /**
     * 手机号
     */
    private String mobile;

    /**
     * 角色ID列表
     */
    private List<Integer> roleIdList;

    /**
     * 上级部门对象
     */
    private ParentDeptVo parentDeptVo;

    /**
     * 此部门所有的下级部门ID
     */
    private Set<Integer> bottomDeptList;

    private int length;

    public int getLength() {
        eachIndex(this.parentDeptVo);
        return this.length;
    }

    private ParentDeptVo eachIndex(ParentDeptVo parentDeptVo) {
        if (parentDeptVo == null) {
            return parentDeptVo;
        }
        if (!parentDeptVo.getDeptId().equals(0)) {
            length = length + 1;
            eachIndex(parentDeptVo.getParentDeptVo());
        }
        return parentDeptVo;
    }

    /**
     * 如果上级有服务中心 则数组存储底部服务中心的部门编号
     */
    private Set<Integer> defaultServiceDeptChild;
}
